package com.investmenttechnologyservices.model;


import java.util.Date;

import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;

public class FutureAndOption extends Instrument {
	//private LocalDate lastTradingDate ; 
	//private Double notionalAmount ;
	//private Short expirationMonth ;
	//private Short expirationYear ;
	//private Delivery delivery ;
	
	public FutureAndOption(Entity entity) {
		super(entity);
	}

	public FutureAndOption(String id, Key firmKey, String name, Key issuerKey, 
			Key underlyingInstrumentKey, Date lastTradingDate, Double notionalAmount, 
			Short expirationMonth, Short expirationYear, Delivery delivery, 
			InstrumentType instrumentType) {
	    super(id, firmKey, name, issuerKey, instrumentType);
		setUnderlyingInstrumentKey(underlyingInstrumentKey);
		setLastTradingDate(lastTradingDate);
		setNotionalAmount(notionalAmount);
		setExpirationMonth(expirationMonth);
		setDelivery(delivery);
	}
	public void setUnderlyingInstrumentKey(Key underlyingInstrumentKey) {
		setProperty("underlyingInstrumentKey", underlyingInstrumentKey);
	}
	public Key getUnderlyingInstrumentKey() {
		return (Key)getProperty("underlyingInstrumentKey");
	}
	public void setLastTradingDate(Date lastTradingDate){
		setProperty("lastTradingDate", lastTradingDate);
	}
	
	public Date getLastTradingDate(){
		return (Date)getProperty("lastTradingDate");
	}
	
	public void setNotionalAmount(Double notionalAmount){
		setProperty("notionalAmount", notionalAmount);
	}
	public Double getNotionalAmount(){
		return (Double)getProperty("notionalAmount");
	}
	
	public void setExpirationMonth(Short expirationMonth){
		setProperty("expirationMonth", expirationMonth);
	}
	public Short getExpirationMonth(){
		return (Short)getProperty("expirationMonth");
	}

	public void setExpirationYear(Short expirationYear){
		setProperty("expirationYear", expirationYear);
	}
	public Short getExpirationYear(){
		return (Short)getProperty("expirationYear");
	}

	public void setDelivery(Delivery delivery){
		setProperty("delivery", delivery);
	}
	public Delivery getDelivery(){
		return (Delivery)getProperty("delivery");
	}
	protected InstrumentType underlyingInstrumentType() {
		return null;
	}
	
	
}
